package com.lihua.project.system.score.domain;

import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.ToString;
import com.lihua.framework.aspectj.lang.annotation.Excel;
import com.lihua.framework.web.domain.BaseEntity;

/**
 * 评分对象 ts_score
 *
 * @author lihua
 * @date 2022-03-23
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
@ToString
public class TsScore extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /** 评分表主键 */
    private Long id;

    /** 评分来自哪个任务 */
    @Excel(name = "评分来自哪个任务")
    private Long taskId;

    /** 评分名称（第一阶段、第二阶段） */
    @Excel(name = "评分名称", readConverterExp = "第一阶段、第二阶段")
    private String name;

    /** 评语 */
    @Excel(name = "评语")
    private String comments;

    /** 分数 */
    @Excel(name = "分数")
    private Double score;

    /** 评分状态（0:未开始、1：未评分、2：已评分） */
    @Excel(name = "评分状态", readConverterExp = "0:未评分、1：已评分")
    private String status;

    /** 评分标准 */
    @Excel(name = "评分标准")
    private String grading;

    /** 开始时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "开始时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date startTime;

    /** 结束时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "结束时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date endTime;

    /** 评分时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "评分时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date scoreTime;

    /** 开始制定评分的时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "开始制定评分的时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date beginTime;

    /** 阶段性成果 */
    @Excel(name = "阶段性成果")
    private String stageResult;

    public TsScore(Long taskId, String name, Double score, String status, Date startTime, Date endTime, Date beginTime) {
        this.taskId = taskId;
        this.name = name;
        this.score = score;
        this.status = status;
        this.startTime = startTime;
        this.endTime = endTime;
        this.beginTime = beginTime;
    }
}
